#ifndef __COMMAND_MAKER_H__
#define __COMMAND_MAKER_H__
#include "../Settings/Settings.h"
#include "Command.h"
#include "../Model/Card.h"
#include <string>
#include <map>
#include <vector>



class CommandMaker
{
private:

  std::string commandStr_;
  std::map<Command, std::string> commandTable_;  

  Command command_;
  int playerNumber_;
  std::string playerName_;
  Settings &settings_;
  static const char separator_;
  
public:
  CommandMaker();
  
  const std::string& makeCommand();

  Command getCommand();
  void setCommand(Command command);
 
  int getPlayerNumber();
  void setPlayerNumber(int playerNumber);

  const std::string& getPlayerName();
  void setPlayerName(const std::string &playerName);

  void setMaker(Command command, int playerNumber, const std::string &playerName);
  
  const std::string& makeStartCommand(const std::vector<Card> &cards);
};

#endif
